export default {
  install(Vue) {
    // 处理数字的过滤器，超出10000单位变成W
    Vue.filter("filterNumber", function(value) {
      let val = Number(value)
      if (val >= 10000) {
        return (val / 10000).toFixed(1) + 'W'
      } else {
        return val
      }
    })
    // diff
    // 3分钟内 刚刚
    // 一小时内 xx分钟前
    // 一天内 xxx小时前
    // 不超过3天 xx天前
    // 超过3天 日期
    // 相对当前时间
    Vue.filter("filterDateDiff", function(value, bool = false) {
      let dateNum = Math.ceil(Date.now() / 1000);
      value = Math.ceil(value / 1000);
      let str = '';
      if (Math.abs(parseInt(dateNum - value)) < 300) {
        str = '刚刚'
      } else if (parseInt((dateNum - value) /
          60) > 3 && parseInt((dateNum - value) /
          60) < 60) {
        str = parseInt((dateNum - value) / 60) + '分钟前'
      } else if (parseInt((dateNum - value) / 60) >= 60 && parseInt((dateNum - value) /
          3600) < 24) {
        str = parseInt((dateNum - value) / 3600) + '小时前'
      } else if (parseInt((dateNum - value) / 3600) >= 24 && parseInt((dateNum - value) /
          3600 / 24) <= 3) {
        str = parseInt((dateNum - value) / 3600 / 24) + '天前'
      } else {
        str = formatDate(value * 1000, 'MM月dd日');
      }

      return str;
    })
    // 日期格式化
    Vue.filter("formatDate", formatDate)
  }
}
//日期格式化
function formatDate(timeStamp, fmt = "yyyy年MM月dd日") {
  // 时间戳转换为日期格式
  let date = new Date(parseInt(timeStamp));
  let y = date.getFullYear();
  let m = date.getMonth() + 1;
  m = m < 10 ? ('0' + m) : m;
  let d = date.getDate();
  d = d < 10 ? ('0' + d) : d;
  let h = date.getHours();
  h = h < 10 ? ('0' + h) : h;
  let minute = date.getMinutes();
  let second = date.getSeconds();
  minute = minute < 10 ? ('0' + minute) : minute;
  second = second < 10 ? ('0' + second) : second;
  let dates = fmt.replace('yyyy', y).replace('MM', m).replace('dd', d).replace('hh', h).replace('mm', minute)
    .replace('ss', second)
  return dates;
}